import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

//插入操作
public class JdbcDemo1 {
    public static void main(String[] args) throws SQLException{
        //1.创造数据源(dataSource)
        DataSource dataSource = new MysqlDataSource();//向上转型
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");//设置url
        ((MysqlDataSource)dataSource).setUser("root");//设置用户名
        ((MysqlDataSource)dataSource).setPassword("2003");//设置密码

        //2.和数据库服务器建立连接(jdbc类似打电话一样，需要接通才行)
        Connection connection =dataSource.getConnection();

        //3.创造能操作Mysql的sql语句和语句对象
        Scanner in = new Scanner(System.in);
        System.out.println("输入学号：");
        int id = in.nextInt();
        System.out.println("输入名字：");
        String name = in.next();

        String sql = "insert into student values(?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,id);
        preparedStatement.setString(2,name);

        //4.把解析好的sql语句发送到数据库,n是返回值，表示这条sql语句对数据库产生了多少行的影响
        int n = preparedStatement.executeUpdate();
        System.out.println("n="+n);

        //5.释放资源。语句对象和连接对象
        preparedStatement.close();
        connection.close();
    }
    public static void main2(String[] args) throws SQLException{
        //1.创造数据源(dataSource)
        DataSource dataSource = new MysqlDataSource();//向上转型
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");//设置url
        ((MysqlDataSource)dataSource).setUser("root");//设置用户名
        ((MysqlDataSource)dataSource).setPassword("2003");//设置密码

        //2.和数据库服务器建立连接(jdbc类似打电话一样，需要接通才行)
        Connection connection =dataSource.getConnection();

        //3.创造能操作Mysql的sql语句和语句对象
        Scanner in = new Scanner(System.in);
        System.out.println("输入学号：");
        int id = in.nextInt();
        in.nextLine();
        System.out.println("输入名字：");
        String name = in.nextLine();
        String sql = "insert into student values("+id+",'"+name+"')";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        //4.把解析好的sql语句发送到数据库,n是返回值，表示这条sql语句对数据库产生了多少行的影响
        int n = preparedStatement.executeUpdate();
        System.out.println("n="+n);

        //5.释放资源。语句对象和连接对象
        preparedStatement.close();
        connection.close();
    }
    public static void main1(String[] args) throws SQLException {
        //1.创造数据源(dataSource)
        DataSource dataSource = new MysqlDataSource();//向上转型
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");//设置url
        ((MysqlDataSource)dataSource).setUser("root");//设置用户名
        ((MysqlDataSource)dataSource).setPassword("2003");//设置密码

        //2.和数据库服务器建立连接(jdbc类似打电话一样，需要接通才行)
         Connection connection =dataSource.getConnection();

        //3.创造能操作Mysql的sql语句和语句对象
        String sql = "insert into student values(5,'牛马')";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        //4.把解析好的sql语句发送到数据库,n是返回值，表示这条sql语句对数据库产生了多少行的影响
        int n = preparedStatement.executeUpdate();
        System.out.println(n);

        //5.释放资源。语句对象和连接对象
        preparedStatement.close();
        connection.close();
    }
}
